Welcome to hysop’s webpage!


HySoP (Hybrid Simulation with Particles) is a library dedicated to high performance direct numerical simulation of fluid related problems based on semi-lagrangian particle methods, for hybrid architectures providing multiple compute devices including CPUs, GPUs or MICs.

Programming elements

The high level functionalities and the user interface are mainly written in Python using the object oriented programming model.

This choice was made because of the large software integration benefits it can provide. Moreover, the object oriented programming model offers a flexible framework to implement scientific libraries when compared to the imperative programming model. It is also a good choice for the users as the Python language is easy to use for beginners while experienced programmers can pick it up very quickly. The numerical solvers are mostly implemented using compiled languages such as Fortran, C/C++, or OpenCL for obvious performance reasons. It is also possible to implement numerical algorithms using directly Python, which is an interpreted language, hence slower for critical code paths under heavy arithmetic or memory load. The Python language support is however the key for rapid development cycles of experimental features. It also allows to easily implement routines that compute simulation statistics during runtime, relieving most of the user post-processing efforts and enabling live simulation monitoring.

The compiled Fortran and C++ compute backends allow us to integrate a variety of external dependencies by connecting them to the main HySoP python module with interface wrappers such as F2PY or SWIG. Note that many scientific libraries already provide Python interfaces so that they can be directly used in python without needing the user to implement his own wrapper. In addition to the compiled languages, the library offers the possibility to compile generated code just-in-time during execution. This is the case for OpenCL, the language used to drive OpenCL-compatible accelerators, like GPUs, but also to translate python methods to fast machine code by using the Numba just-in-time compiler.


HySoP has been used to produce numerical results in the following references:


Jean-Baptiste Keck, Georges-Henri Cottet, Eckart Meiburg, Iraj Mortazavi, and Christophe Picard. Double-diffusive sedimentation at high Schmidt numbers: Semi-Lagrangian simulations. Physical Review Fluids, 6(2):L022301, February 2021. URL: https://hal.archives-ouvertes.fr/hal-02982080, doi:10.1103/PhysRevFluids.6.L022301.


Jean-Matthieu Etancelin, Peter Moonen, and Philippe Poncet. Improvement of remeshed Lagrangian methods for the simulation of dissolution processes at pore-scale. Advances in Water Resources, 146:103780, October 2020. URL: https://hal.archives-ouvertes.fr/hal-02965451, doi:10.1016/j.advwatres.2020.103780.


Jean-Baptiste Keck. Numerical modelling and High Performance Computing for sediment flows. Theses, Université Grenoble Alpes, December 2019. URL: https://tel.archives-ouvertes.fr/tel-02433509.


Chloé Mimeau, Iraj Mortazavi, and Georges-Henri Cottet. Passive control of the flow around a hemisphere using porous media. European Journal of Mechanics - B/Fluids, 65:213–226, September 2017. URL: https://hal.archives-ouvertes.fr/hal-01483400, doi:10.1016/j.euromechflu.2017.03.002.


Chloé Mimeau. Conception et mise en oeuvre de méthodes vortex hybrides-frontières immergées pour des milieux solides-fluides-poreux. Application au contrôle passif d'écoulements. Theses, Université Grenoble Alpes, July 2015. URL: https://tel.archives-ouvertes.fr/tel-01178939.


Georges-Henri Cottet, Jean-Matthieu Etancelin, Franck Pérignon, and Christophe Picard. High order Semi-Lagrangian particle methods for transport equations: numerical analysis and implementation issues. ESAIM: Mathematical Modelling and Numerical Analysis, 48(4):1029–1060, July 2014. URL: https://hal.archives-ouvertes.fr/hal-00991150, doi:10.1051/m2an/2014009.


Jean-Matthieu Etancelin. Couplage de modèles, algorithmes multi-échelles et calcul hybride. Theses, Université de Grenoble, December 2014. URL: https://tel.archives-ouvertes.fr/tel-01094645.

Indices and tables